// 输入一个递增排序的数组和一个数字s，在数组中查找两个数，使得它们的和正好是s。
// 如果有多对数字的和等于s，则输出任意一对即可。

// 暴露接口
function twoSum(nums: number[], target: number): number[] {
    let left: number = 0;// 声明左指针
    let right: number = nums.length - 1;// 声明右指针
    // 根据二数之和调整指针范围
    while (left < right) {
        if (nums[left] + nums[right] < target) {
            left++;
        } else if (nums[left] + nums[right] > target) {
            right--;
        } else {
            break;
        }
    }
    return [nums[left], nums[right]];
};

// 这道题难度也并不大...
// 核心思想也是使用一个双指针法
// 因为已知数组是递增序列，所以我们是很好通过指针来控制二数和的大小
// 然后通过划动的指针来调整的数的范围，
// 然后返回带指针的数组。